package com.jtny.nytb.weather.service;


import com.jtny.component.entity.PageData;
import com.jtny.component.entity.PageParam;
import com.jtny.nytb.weather.entity.dto.WeatherApiInfoDTO;
import com.jtny.nytb.weather.entity.dto.WeatherRequestDTO;
import com.jtny.nytb.weather.entity.dto.WeatherResponseDTO;
import com.jtny.nytb.weather.entity.vo.RequestParamInfoVO;
import com.jtny.nytb.weather.entity.vo.ResponseParamInfoVO;
import com.jtny.nytb.weather.entity.vo.WeatherApiInfoPageQueryParamVO;
import com.jtny.nytb.weather.entity.vo.WeatherApiInfoVO;

import java.util.List;

public interface WeatherSourcesService {

    /**
     * 新增api接口信息
     * @param weatherApiInfoVO
     */
    void saveApiInfo(WeatherApiInfoVO weatherApiInfoVO);

    /**
     * 删除api接口信息
     * @param id
     */
    void deleteApiInfo(Long id);

    /**
     * 修改api接口信息
     * @param weatherApiInfoVO
     */
    void updateApiInfo(WeatherApiInfoVO weatherApiInfoVO);

    /**
     * 查询单个api接口信息
     * @param id
     * @return
     */
    WeatherApiInfoDTO selectApiById(Long id);

    /**
     * 分页查询api接口信息
     * @param weatherApiInfoPageQueryParamVO
     * @return
     */
    PageData<WeatherApiInfoVO> pageQueryByApi(WeatherApiInfoPageQueryParamVO weatherApiInfoPageQueryParamVO);

    /**
     * 新增请求参数信息
     * @param requestParamInfoVO
     */
    void saveRequestParamInfo(RequestParamInfoVO requestParamInfoVO);

    /**
     * 查询单个请求参数信息
     * @return
     */
    WeatherRequestDTO selectRequestInfoById(Long id);

    /**
     * 删除请求参数信息
     * @param id
     */
    void deleteRequestParamInfo(Long id);

    /**
     * 修改请求参数信息
     * @param requestParamInfoVO
     */
    void updateRequestParamInfo(RequestParamInfoVO requestParamInfoVO);

    /**
     * 分页查询请求参数信息
     * @param pageParam
     * @return
     */
    PageData<RequestParamInfoVO> pageQueryByRequestParam(PageParam pageParam);

    /**
     * 根据apiId查询请求参数信息
     * @param apiId
     * @return
     */
    List<RequestParamInfoVO> selectRequestByApiId(Long apiId);

    /**
     * 新增返回参数信息
     * @param responseParamInfoVO
     */
    void saveResponseParamInfo(ResponseParamInfoVO responseParamInfoVO);

    /**
     * 查询单个请求参数信息
     * @return
     */
    WeatherResponseDTO selectResponseInfoById(Long id);

    /**
     * 删除请求参数信息
     * @param id
     */
    void deleteResponseParamInfo(Long id);

    /**
     * 修改请求参数信息
     * @param responseParamInfoVO
     */
    void updateResponseParamInfo(ResponseParamInfoVO responseParamInfoVO);

    /**
     * 分页查询请求参数信息
     * @param pageParam
     * @return
     */
    PageData<ResponseParamInfoVO> pageQueryByResponseParam(PageParam pageParam);

    /**
     * 根据apiId查询请求参数信息
     * @param apiId
     * @return
     */
    List<ResponseParamInfoVO> selectResponseByApiId(Long apiId);





}
